Build Engine
   HOME

TheInfoList



OR:

The Build Engine is a
first-person shooter engine A first-person shooter engine is a game engine, video game engine specialized for simulating 3D graphics, 3D environments for use in a first-person shooter video game. First-person refers to the view where the players see the world from the eyes o ...
created by
Ken Silverman Ken Silverman (born November 1, 1975) is an American game programmer, best known for writing the Build (game engine), Build engine. It was most notably utilized by ''Duke Nukem 3D'', ''Shadow Warrior'', ''Blood (video game), Blood'', and mor ...
, author of ''
Ken's Labyrinth ''Ken's Labyrinth'' is a first-person shooter for MS-DOS published in 1993 by Epic MegaGames. It was programmed by Ken Silverman, who later designed the Build engine used for rendering in 3D Realms's ''Duke Nukem 3D'' (1996). ''Ken's Labyrinth'' ...
'', for
3D Realms 3D Realms Entertainment ApS is a video game publisher based in Aalborg, Denmark. Scott Miller founded the company in his parents' home in Garland, Texas, in 1987 as Apogee Software Productions to release his game '' Kingdom of Kroz''. In the ...
. Like the ''Doom'' engine, the Build Engine represents its world on a
two-dimensional A two-dimensional space is a mathematical space with two dimensions, meaning points have two degrees of freedom: their locations can be locally described with two coordinates or they can move in two independent directions. Common two-dimension ...
grid using closed 2D shapes called sectors, and uses simple flat objects called sprites to populate the world geometry with objects. The Build Engine is generally considered to be a 2.5D engine, as the basic world geometry is two-dimensional with an added height component, allowing each sector to have a different ceiling height and floor height. Some floors can be lower and some can be higher; the same is true with ceilings (in relation to each other). Floors and ceilings can hinge along one of the sector's walls, resulting in a slope. With this information, the Build Engine renders the world in a way that looks
three-dimensional In geometry, a three-dimensional space (3D space, 3-space or, rarely, tri-dimensional space) is a mathematical space in which three values (''coordinates'') are required to determine the position (geometry), position of a point (geometry), poi ...
, unlike modern game engines that create actual 3D environments. Though the Build Engine achieved most of its fame from powering the
1996 1996 was designated as: * International Year for the Eradication of Poverty Events January * January 8 – A Zairean cargo plane crashes into a crowded market in the center of the capital city of the Democratic Republic of the Congo ...
first-person shooter A first-person shooter (FPS) is a video game genre, video game centered on gun fighting and other weapon-based combat seen from a First person (video games), first-person perspective, with the player experiencing the action directly through t ...
''
Duke Nukem 3D ''Duke Nukem 3D'' is a 1996 first-person shooter, first-person shooter game developed by 3D Realms and published by FormGen for MS-DOS. It is a sequel to the platform games ''Duke Nukem (video game), Duke Nukem'' and ''Duke Nukem II'', published ...
'', it was also used for many other games.


Technical features


Sectors

Sectors are the building blocks of a level's layout, consisting of a two-dimensional
polygonal In geometry, a polygon () is a plane (mathematics), plane Shape, figure made up of line segments connected to form a closed polygonal chain. The segments of a closed polygonal chain are called its ''edge (geometry), edges'' or ''sides''. The p ...
outline when viewed from above, with the top and bottom
faces The face is the front of the head that features the eyes, nose and mouth, and through which animals express many of their emotions. The face is crucial for human identity, and damage such as scarring or developmental deformities may affect the ...
of the sector given separate
altitude Altitude is a distance measurement, usually in the vertical or "up" direction, between a reference datum (geodesy), datum and a point or object. The exact definition and reference datum varies according to the context (e.g., aviation, geometr ...
s to create a three-dimensional space. Hence, all walls are perfectly vertical—anything appearing otherwise is technically a sloped floor or ceiling. The word ''room'' can be used as a loose substitute to aid understanding, though one room in the game world can consist of many sectors, and
parallax Parallax is a displacement or difference in the apparent position of an object viewed along two different sightline, lines of sight and is measured by the angle or half-angle of inclination between those two lines. Due to perspective (graphica ...
ed skies can give the illusion of being outdoors. Sectors can be manipulated in real-time; ''all'' of their attributes such as shape, height, and slope could be modified "on-the-fly" by games, unlike the earlier ''Doom'' engine. This allowed games to have destructible environments, such as those seen in ''
Blood Blood is a body fluid in the circulatory system of humans and other vertebrates that delivers necessary substances such as nutrients and oxygen to the cells, and transports metabolic waste products away from those same cells. Blood is com ...
''. This technique is similar to the use of push walls in the earlier Apogee Software title ''
Rise of the Triad ''Rise of the Triad: Dark War'' is a first-person shooter video game, developed and published by Apogee Software (now 3D Realms) in 1995. The player can choose to play as one of five different characters, each bearing unique attributes such a ...
'' which featured similar dynamic environments. Developers of games based on the engine used special reserved "sprites" (game objects), often called "sector ", that, when given special tags (numbers with defined meanings), would allow the level designer to construct a dynamic world; similar tag information could be given to the sector walls and floor area to give a sector special characteristics. For example, a particular sector effector may let players fall through the floor if they walk over it and teleport them to another sector; in practice, this could be used to create the effect of falling down a hole to a bigger room or creating a body of water that could be jumped into to explore underwater. A sector could be given a tag that made it behave like an elevator or lift. Sectors could overlap one another, provided they could not be seen at the same time (if two overlapping sectors were seen at the same time, a hall of mirrors effect resulted). This allowed the designers to create, for instance, air ducts that appeared to extend across the top of another room (however, doing so could be tricky for designers due to the 2D viewpoint used for much of the editing process). This allowed the designers to create worlds that would be physically impossible (e.g. a doorway of a small building could lead into a network of rooms larger than the building itself). While all these made the games using the engine appear to be 3D, it wouldn't be until later first-person shooters, such as '' Quake'', which used the ''Quake'' engine, that the engine actually stored the world geometry as true 3D information, making the creation of one area stacked atop another area in a single map very feasible.


Voxels

Later versions of Ken Silverman's Build Engine allowed game selected art tiles to be replaced by 3D objects made of
voxel In computing, a voxel is a representation of a value on a three-dimensional regular grid, akin to the two-dimensional pixel. Voxels are frequently used in the Data visualization, visualization and analysis of medical imaging, medical and scient ...
s. This feature appeared too late to be used in ''Duke Nukem 3D'', but was seen in some of the later Build Engine games. ''Blood'' uses voxels for weapon and ammo pickups, power-ups, and eye-candy (such as the tombstones in the "Cradle to Grave" level, some chairs, and a
crystal ball A crystal ball is a crystal or glass ball commonly used in fortune-telling. It is generally associated with the performance of clairvoyance and scrying through crystal gazing. Used since Antiquity, crystal balls have had a broad reputation with ...
in "Dark Carnival"). ''Shadow Warrior'' makes even more advanced use of the technology, with voxels that can be placed on walls (all of the game's switches and buttons are voxels). For several years, Ken worked on a modern engine based entirely on voxels, known as '' Voxlap''.


Room over room

One limitation of the Build Engine is that its level geometry is only capable of representing one connection between sectors for any given wall. Due to this, a structure as simple as a shelf with space both above and below it is impossible, though sometimes sprites or voxels can be substituted. Buildings with several floors are technically possible, but it is not possible for such a building to contain an external window directly above or below another window. In addition, some liberties will need to be taken with the staircases, elevators, and other methods of access for each floor. Several Build Engine games (namely ''Shadow Warrior'', ''Blood'', and ''Redneck Rampage'') worked around this by displaying a "viewport" to another sector through an additional rendering pass. This technique, called ''
room-over-room Since the origin of video games in the early 1970s, the video game industry, the players, and surrounding culture have spawned a wide range of technical and slang terms. 0–9 A ...
'' (ROR), appears seamless to the player. In addition to an expanded range of vertical construction, ROR was often used to give bodies of water
translucent In the field of optics, transparency (also called pellucidity or diaphaneity) is the physical property of allowing light to pass through the material without appreciable light scattering by particles, scattering of light. On a macroscopic scale ...
surfaces. ROR was never a feature of the Build Engine itself, but rather a "trick" that was created by game developers. A trick used in ''Duke Nukem 3D'' to get around this, as in the case of its opaque underwater sections, was to simply transport the player quickly to another region of the map made to mimic it, similar to the elevators from ''
Rise of the Triad ''Rise of the Triad: Dark War'' is a first-person shooter video game, developed and published by Apogee Software (now 3D Realms) in 1995. The player can choose to play as one of five different characters, each bearing unique attributes such a ...
''. In 2011, a feature was added to EDuke32 called ''true room over room'' (TROR), which allows multiple sectors to be stacked vertically so that each sector's wall has its own connection, enabling vertically-unrestricted structures. The difference between ROR and TROR is that TROR sectors physically overlap in the map data and editor (allowing for easy creation and visualization), rather than being drawn from separate locations using view portals, hence ''true'' room over room. TROR is a feature of the EDuke32 source port, not a game feature or trick.


List of Build Engine games


Games that are built directly on the Build Engine


Games that are based on the ''Duke Nukem 3D'' code


Unreleased Build Engine games

* ''Fate'' (unfinished, only a demo exists) * ''Corridor 8: Galactic Wars'' (unfinished, source code is available)


Development

The Build Engine was essentially a one-man project for Ken Silverman, though he consulted
John Carmack John D. Carmack II (born August 21, 1970) is an American computer programmer and video game developer. He co-founded the video game company id Software and was the lead programmer of its 1990s games ''Commander Keen'', ''Wolfenstein 3D'', ''Do ...
for guidance early in the project. Silverman was hired by 3D Realms on the basis of his demo for Build. Though he continued to refine the engine after becoming employed at 3D Realms, according to Silverman he never teamed with any other 3D Realms employees on the project and was never directed to tailor the engine towards any particular game.


Source release and further developments

On June 20, 2000 (according to his website) Ken Silverman released the Build Engine
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
under a proprietary
non-commercial A non-commercial (also spelled noncommercial) activity is an activity that is not carried out in the interest of Profit (economics), profit. The opposite is Commerce, commercial, something that primarily serves profit interests and is focused on bu ...
license. Silverman explained that after
id Software id Software LLC () is an American video game developer based in Richardson, Texas. It was founded on February 1, 1991, by four members of the computer company Softdisk: game programmer, programmers John Carmack and John Romero, game designer T ...
set a precedent by releasing the source code for the
Doom engine id Tech 1, also known as the ''Doom'' engine, is the game engine used in the id Software video games '' Doom'' and '' Doom II: Hell on Earth''. It is also used in ''Heretic'', '' Hexen: Beyond Heretic'', '' Strife: Quest for the Sigil'', '' Hacx ...
, fans had been pressuring him to release the source code for the Build Engine.


Early days

Version 2.0 of EDuke, a project to improve ''Duke Nukem 3D'' for modders by Matt Saettler (Matteus), was sent to 3D Realms for packaging shortly after the release of the Build source, leaving Duke Nukem 3D the pre-built libraries that 3D Realms had used with the original Duke. (Both ''Duke Nukem 3D'' and ''EDuke'' were still closed-source at this point.) With the 2.1 private betas, Saettler worked towards integrating Silverman's build source into the Duke source code, but the project fizzled out before producing anything more than some very buggy private betas. A few total conversion teams for Build games decided to work from Silverman's Build code directly, and an enhanced version of the Build editor known as Mapster was also developed. It was claimed at the time by many on the 3D Realms forums that it would be impossible to port Build to a multitasking operating system, as it needed a large contiguous block of memory that wouldn't be available in a multitasking environment. This statement did not hold up to scrutiny, as all modern operating systems use
virtual memory In computing, virtual memory, or virtual storage, is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a ver ...
which allows apps to get contiguous logical memory without using contiguous physical memory, but conventional wisdom of the time was that porting Build to such an OS was unfeasible.


''Duke Nukem 3D'' source release

On April 1, 2003, after several years of claims to the contrary, 3D Realms released the source code to ''Duke Nukem 3D'' under the GPL-2.0-or-later license. Not long afterwards, both Ryan C. Gordon (icculus) and Jonathon Fowler (JonoF) created and released source ports of the game, including the Build Engine. It was possible to play ''Duke Nukem 3D'' well on the NT line of Windows (including Windows 2000/XP) and on
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
and other
Unix Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
operating systems, and interest in the source ports soared.


icculus.org port

Ryan C. Gordon (icculus), with the help of others, made the first port of the engine using SDL. The port was first to
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
, then to
Cygwin Cygwin ( ) is a free and open-source Unix-like environment and command-line interface (CLI) for Microsoft Windows. The project also provides a software repository containing open-source packages. Cygwin allows source code for Unix-like operati ...
, and finally to a native Windows build using the Watcom C++ compiler, which was the compiler used for the original DOS build (despite being compiled with Watcom C++, Build is plain C.) There was some talk of Matt Saettler using this to port ''EDuke'' to Windows, but nothing came of it. A port of ''Duke Nukem 3D'' was later produced after the source was released. This was also forked by David Koenig (Rancidmeat) as Duke3d_w32 which was in turned forked into the multiplayer focused xDuke, hDuke, nDuke and rDuke.


JonoF port

A second source port was made to Windows, and later to Linux and Mac OS X, by Jonathon Fowler (JonoF). This port, JFDuke3D, initially did not have network game support, though this was added later in development. After a long period of dormancy it was put on
GitHub GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
in 2020 and received updates in 2021 and 2024. He also ported the Ken-Build test game.


Polymost

The task of updating the Build Engine to a true 3D renderer was taken on by Silverman himself. In the release notes for Polymost, he wrote: "When 3D Realms released the Duke Nukem 3D source code, I thought somebody would do a OpenGL or Direct3D port. Well, after a few months passed, I saw no sign of somebody working on a true hardware-accelerated port of Build, just people saying it wasn't possible. Eventually, I realized the only way this was going to happen was for me to do it myself." The Polymost renderer allowed for 3D hardware-accelerated graphics using
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
. It also introduced "hightile", a feature that made it possible to replace the game's original textures with high-resolution replacements in a variety of formats. Polymost has been utilized in Jonathon Fowler's JFBuild, JFDuke3D, JFShadowWarrior, and source ports derived from their code bases.


EDuke32

A month after the game code, the source for EDuke 2.0 was also released, followed by the source for the last private beta of ''EDuke'' 2.1 (which never made it to a release version). Richard Gobeille (TerminX) merged the EDuke 2.0 source with JFDuke3D to make ''EDuke32''. Another port, ''Wineduke'', based on the icculus code, has since died off, leaving EDuke32 the only EDuke port still in development. EDuke32 also supports the games ''NAM'' and ''WWII GI'', as EDuke was based on the code to those games.


Polymer

On April 1, 2009, an OpenGL shader model 3.0 renderer was revealed to have been developed for EDuke32, named ''Polymer'' to distinguish from Ken Silverman's ''Polymost''. At first it was thought to be an April Fools' joke, but the renderer was later made public. It allows for more modern effects such as real-time dynamic colored lighting and shadow mapping, specular and
normal mapping In 3D computer graphics, normal mapping, or Dot3 bump mapping, is a texture mapping technique used for faking the lighting of bumps and dents – an implementation of bump mapping. It is used to add details without using more polygonal modeling, ...
, and other shader-based features in addition to most of the features added to Polymost over the years. Although Polymer is completely usable, it is technically incomplete and unoptimised, and is still in development. The developers of EDuke32 have stated that once Polymer has been rewritten for speed, it will supplant Polymost completely, as it is a superior renderer, and can be made to look identical to Polymost.


Other game ports

The ''
Shadow Warrior ''Shadow Warrior'' is a series of first-person shooter video games that focuses on the exploits of Lo Wang, a modern ninja warrior who fights through hordes of demons. The original series is made up of one game, '' Shadow Warrior'' (1997), and t ...
'' source code was released on April 1, 2005 under the GPL-2.0-or-later license, and JonoF released a source port of it, JFShadowWarrior, on April 2, 2005. However, he admitted that he had access to the ''Shadow Warrior'' source code about a week before its release. The port was left in a partially incomplete state, before being put on
GitHub GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
in 2020 and receiving updates in 2021 and 2024. The earlier version was later forked by Ben Smit (ProASM) for the SWP port. An icculus port of ''Shadow Warrior'' was started, but remained alpha. A VoidSW port by the '' Ion Fury'' and EDuke32 developers entered public beta on May 21, 2020. A fork from an earlier version, called IcedSW, by Justin Marshall (IceColdDuke) also exists. The ''Transfusion'' project aimed to re-create ''
Blood Blood is a body fluid in the circulatory system of humans and other vertebrates that delivers necessary substances such as nutrients and oxygen to the cells, and transports metabolic waste products away from those same cells. Blood is com ...
'' in the DarkPlaces engine, but as of 2007, this project was far from complete, though it has playable deathmatch multiplayer; a similar project is ''BloodCM'' which recreates all of the Monolith made single player levels for ''Blood'' on top of EDuke32, as well as ''ZBlood'' which ports some ''Blood'' assets and levels onto ZDoom. The ''eRampage'' project attempted to create a
total conversion Video game modding (short for "modifying") is the process of alteration by players or fans of one or more aspects of a video game, such as how it looks or behaves, and is a sub-discipline of general ''modding''. A set of modifications, commonly c ...
of ''
Redneck Rampage ''Redneck Rampage'' is a 1997 first-person shooter game developed by Xatrix Entertainment and published by Interplay. The game has a hillbilly theme, primarily taking place in a fictional Arkansas town. Many of the weapons and power-ups borde ...
'' for EDuke32. Meanwhile ''DN3DooM'', ''Shadow Warrior TC'', ''Doomed Redneck'', ''Re-Blood'', ''Re-PowerSlave'', ''VietDoom'', and ''Fatedoom'' adapts those games onto GZDoom. The source code of ''
Witchaven ''Witchaven'' (usually pronounced ) is a dark fantasy first-person shooter video game developed by Capstone Software and published by Intracorp Entertainment in 1995. Its sword-and-sorcery themed story tasks the knight Grondoval with a quest to ...
'', '' Witchaven II: Blood Vengeance'', ''
William Shatner's TekWar ''William Shatner's TekWar'' is a 1995 first-person shooter video game derived from the ''TekWar'' series of novels created by William Shatner and ghost-written by science-fiction author Ron Goulart. It was designed using the Build engine. Plot ...
'', and ''Corridor 8: Galactic Wars'' also surfaced in 2007 from developer Les Bird. The legal status of these, however, is unclear, though the derived EGwhaven patches for ''Witchaven'' were included in the game's
Steam Steam is water vapor, often mixed with air or an aerosol of liquid water droplets. This may occur due to evaporation or due to boiling, where heat is applied until water reaches the enthalpy of vaporization. Saturated or superheated steam is inv ...
and GOG.com re-releases. JonoF released ports for ''Witchaven'' and ''TekWar'' on March 3, 2024; with derived ETekWar and EWitchaven ports also prototyped. The full source code for various alpha versions of ''Blood'' have also leaked over time. This was then used as a reference for an otherwise
reverse engineered Reverse engineering (also known as backwards engineering or back engineering) is a process or method through which one attempts to understand through deductive reasoning how a previously made device, process, system, or piece of software accompl ...
port to
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
using
LibGDX libGDX is a free and open-source game-development application framework written in the Java programming language with some C and C++ components for performance dependent code. It allows for the development of desktop and mobile games by usin ...
called BloodGDX in May 2017 by Alexander Makarov (M210), the previous author of ''BloodCM''. This followed from the author's previous port of ''TekWar'' released in January 2016, and has been followed up by ports for ''Witchaven'', ''Redneck Rampage'', ''Duke Nukem 3D'', ''PowerSlave'', ''Legends of the Seven Paladins'' and ''Shadow Warrior'', now all collectively called BuildGDX. DukeGDX also supports the files from the ''20th Anniversary World Tour'' edition of ''Duke Nukem 3D''. A further port of ''Blood'', called NBlood, was released in January 2019 by Alexey Khokholov (Nuke.YKT) based on EDuke32, and the creator's previous Rednukem port for ''Redneck Rampage'' (which also supports ''Duke Nukem 3D'' and ''Duke Nukem 64''). An EDuke32 port for ''
PowerSlave ''Powerslave'' is the fifth studio album by the English heavy metal band Iron Maiden, released on 3 September 1984 through EMI Records in Europe and its sister label Capitol Records in North America. It was re-released by Sanctuary and Columbi ...
'', called ''PCExhumed'', was released on November 21, 2019 by Barry Duncan (sirlemonhead) with help from Nuke.YKT. The source port Raze forks various Build engine ports, including JFDuke3D, SWP, NBlood, Rednukem, and PCExhumed, and ties it to a new underlying backend based on the developers' own GZDoom. NBlood and PCExhumed have also been backported to JFBuild for the purpose of adapting it to platforms such as the
Amiga Amiga is a family of personal computers produced by Commodore International, Commodore from 1985 until the company's bankruptcy in 1994, with production by others afterward. The original model is one of a number of mid-1980s computers with 16-b ...
,
PlayStation Vita The PlayStation Vita (PS Vita) is a handheld game console developed and marketed by Sony Computer Entertainment. It was first released in Japan on December 17, 2011, then in other international territories on February 22, 2012, and was produced ...
and
Nintendo 3DS The is a foldable dual-screen handheld game console produced by Nintendo. Announced in March 2010 as the successor to the Nintendo DS, the console was released originally on February 26, 2011 and went through various revisions in its lifetime, ...
.


Successor

After multiple attempts to design a successor to Build, Silverman again began experimenting with such an idea in 2006. He used this work - now called Build 2 - while teaching 3D game programming to children at a summer camp from 2007 until 2009, and work continued until 2011 when he lost interest in the project. It features a more advanced lighting system, voxel rendering for entities and true room-over-room 3D spaces, and at least in part retained backwards compatibility with the original Build. Silverman released his drafts to the public on March 7, 2018. The source code was published under a proprietary non-commercial license on June 8, 2019.


References


External links


Ken Silverman's Build Engine Page



Build Engine basic tutorial using mapster32
{{DEFAULTSORT:Build Engine 1995 software Game engines for Linux Video game engines